﻿#pragma once

#include <QGraphicsRectItem>
#include "diagramTextItem.h"
#include <QtGui>
#include "togglerect.h"

class toggleRect;

/*! \class frame
    \brief Класс рамки диаграммы
*/
class frame : public QGraphicsRectItem
{
public:

	/*! Конструктор с параметрами
		\param p Устанавливает переключатели в поле "Status"
		\param parent Указатель на родительский элемент
		\param scene Указатель на графическую сцену
	*/
	frame(short int p, QGraphicsItem *parent = 0, QGraphicsScene *scene = 0);

	~frame();

	QRectF myRect;								//!< Прямоугольник обозначающий рабочее поле внутри рамки диаграммы
	short int myPurpose;						//!< Конфигурация переключателей в поле "Status"
	
	/*! Устанавливает положение переключателей в поле "Status"
		\param p Номер активного переключателя
	*/
	void setPurpose(short int p);

	/*! Рисование статичных текстовых полей и линий рамки
		\param scene Указатель на графическую сцену
	*/
	void drawStatic(QGraphicsScene *scene);

	/*! Создание на рамке редактируемых текстовых полей
		\param scene Указатель на графическую сцену
	*/
	void addFields(QGraphicsScene *scene);

	QMap<QString, diagramTextItem*> mapField;	//!< Контейнер хранящий редактируемые текстовые поля рамки

private:
	toggleRect *r[4];							//!< Переключатели в поле "Status"
};
